Scroll to navigation

AIO_CANCEL(3) Linux Programmer's Manual AIO_CANCEL(3)

名前

aio_cancel - 完了していない非同期 I/O リクエストをキャンセルする

書式

#include <aio.h>

int aio_cancel(int fd, struct aiocb *aiocbp);

-lrt でリンクする。

説明

aio_cancel() 関数は、ファイルディスクリプタ fd についての完了していない非同期 I/O リクエストをキャンセルしようとする。 aiocbp が NULL の場合、そのような全てのリクエストがキャンセルされる。 aiocbp が NULL でない場合、 aiocbp で指された制御ブロックで記述されたリクエストのみがキャンセルされる。

キャンセルされたリクエストに対して、通常の非同期通知が起こる。 リクエストの返り値は -1 に設定され、 リクエストのエラー状態は ECANCELED に設定される。 キャンセルできなかったリクエストの制御ブロックは変更されない。

aiocbp が NULL でなく、かつ fd が非同期操作が開始されたファイルディスクリプタと異なる場合、 生じる結果は不定である。

どの操作をキャンセルできるかは、実装定義である。

返り値

全てのリクエストのキャンセルが成功した場合、この関数は AIO_CANCELED を返す。 指定されたリクエストのうち少なくとも 1 つが進行中であるために キャンセルできなかった場合は、 AIO_NOTCANCELED が返される。 この場合は、 aio_error(3) を使って個々のリクエストの状態をチェックすることができる。 呼び出される前に全てのリクエストが完了していた場合、 この関数は AIO_ALLDONE を返す。 何らかのエラーが起こった場合は、-1 が返されて、 errno が適切に設定される。

エラー

fd が有効なファイルディスクリプタでない。

準拠

POSIX.1-2001.

関連項目

aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_suspend(3), aio_write(3)

2003-11-14